There are many applications for which it may be desired to segment out one or more objects from a 3-Dimensional (3D) image of a scene. For example, a preliminary operation in many computer vision-based tasks is to segment out some particular object of interest, for subsequent analysis, from the scene in which the object appears. Another example application requiring 3D segmentation is box measurement. A 3D image from a depth camera provides the distance between the camera and objects within the scene, which can be used to obtain measurements of the surface area or the volume of objects, such as boxes or cartons. It is first necessary, however, to perform a 3D segmentation of the object of interest, to ensure that the sampled points used to calculate the dimensions of the object do not belong to the surrounding environment. Yet another example application for 3D segmentation lies in the field of robotics, and more specifically, the problem of navigating a robot through an arbitrary environment. Generally, the robot must perform various calculations to understand the geometry of the scene, which allows it to make certain decisions. For example, the robot must be able to estimate the distance between two adjacent objects in its path, to decide if it will be possible to pass between the objects. The segmentation problem is generally considered to be difficult and existing techniques suffer from a variety of limitations and problems, particularly when objects are composed of multiple parts with varying geometries or when the objects include different materials and textures.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.